#include <iostream>
#include <vector>
#include <string>

size_t split(const std::string& str, const std::string& sep, std::vector<std::string>& result)
{
    // news...music.#.pop
    int pos = 0; // 查找结果
    int idx = 0; // 开始查找的位置
    while(idx < str.size())
    {
        pos = str.find(sep, idx);
        if (pos == std::string::npos)
        {
            // 没找到，直接从开始查找位置开始分割，一直到末尾
            result.push_back(str.substr(idx));
            return result.size();
        }
        // 找到
        if (pos == idx)
        {
            // 说明开始位置就是分隔符，跳过
            idx = pos + sep.size();
            continue;
        }
        result.push_back(str.substr(idx, pos - idx));
        idx = pos + sep.size();
    }
    return result.size();
}

int main()
{
    std::vector<std::string> result;
    int n = split("..news..music.#.pop...", ".", result);
    std::cout << n << std::endl;

    for (auto& e : result)
        std::cout << e << std::endl;

    return 0;
}